package day03

/**
  * 构造器
  */
object ConstructorAnd {
  def main(args: Array[String]): Unit = {
    val student = new Student("laohan",18,"haha")
    //val 不能修改
    //var 是可以修改的
    //student.name = "peng"
    println(student.age)
    println(student.name)
    //不使用val 或 var 声明的变量，是不会有对应的成员变量的
    //println(student.nickname)

  }

}
//放在类上面的构造器称为主构造器
//构造器里面的变量是类里面的成员变量
//不使用val 或 var 声明的变量，是不会有对应的成员变量的
class Student(val name:String,var age:Int,nickname:String){

}

/**
  * 辅助构造器
  *
  */
class Teacher (val name:String,var age:Int){

  var sex:String = _

  //辅助构造器不需要使用val 和 var
  def this(name:String,age:Int,sex:String){
    //在第一行需要显示调用主构造器
    //主构造器如果是无参的可以不调用
    this(name,age)
    this.sex = sex
  }
}




